home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <math.h>
- #include <strings.h>
-
- /* this little program was originally proposed by matt osickey */
- /* azrael@sage.cc.purdue.edu or osickey@centrifuge.ecn.purdue.edu */
-
- /* if anyone can supply me with a better way to generate */
- /* random percentiles in 'c' please email me */
-
- int percentile()
- {
- double random1, random2, random3;
- int percent;
- random1=(double)(rand());
- random2=(double)(rand());
- random3=(double)(random1/random2);
- if (random3<=1.00)
- return((int)(random3*100));
- while (random3>1.00)
- {
- random3-=1;;
- }
- percent=(int)(random3*100.00);
- return(percent);
- }
- void main()
- {
-
- int percentile(), initialize, i, j, dummy, quantity, value;
- static char ornamental[11][20]={"Azurite ","Agate ","Blue Quartz",
- "Hematite ", "Lapis Lazuli","Malachite ","Obsidian ",
- "Agate ", "Rhodochrosite","Turquoise ","Banded Agate"};
- static char semiprecious[10][20]={"Bloodstone","Citrine ","Jasper ",
- "Moonstone ", "Onyx ","Sardonyx ","StarRose Quartz",
- "Zircon ", "Carnelian ","Chalcedony"};
- static char fancy[10][20]={"Amber ","Alexandrite","Amethyst ","Chysoberyl",
- "Coral\t", "Garnet\t","Jade\t","Jet ","Spinel ",
- "Tourmaline"};
- static char precious[10][20]={"Aquamarine","Violet Garnet","Jade ",
- "White Pearl", "Black Pearl","Peridot ","Blue Spinel","Topaz ",
- "Rose Pearl", "Spinel "};
- static char gems[10][20]={"Black Opal","Fire Opal","Opal ",
- "O. Amethyst", "O. Topaz ","Sapphire ","Sapphire ",
- "Tiny Diamond","Tiny Ruby","Tiny Emerald"};
- static char jewels[10][20]={"Black Saphire","Diamond ","Emerald ",
- "Jacinth ", "O. Emerald","Ruby ","Star Ruby","Star Sapphire",
- "Lg. Sapphire","Blue Diamond"};
-
- FILE *ifp, *fopen(), *fclose();
- ifp = fopen("gems","w");
- printf("Please enter a random integer: \n");
- scanf(" %d",&initialize);
- for (i=0;i<initialize;i++)
- dummy=rand();
- printf("Please enter the number of gems you wish to generate: \n");
- scanf(" %d",&quantity);
- ifp = fopen("gems","a");
- for (i=0;i<quantity/3;i++)
- {
- dummy=percentile();
- if (dummy<20)
- {
- for (j=0;j<3;j++)
- {
- dummy=percentile()/10;
- value=(int)(10+((double)percentile())/10.0);
- if (j==0)
- fprintf(ifp,"%d gp %s\t",value,ornamental[dummy]);
- else
- fprintf(ifp," %d gp %s\t", value,ornamental[dummy]);
- }
- fprintf(ifp,"\n");
- }
- if ((dummy<40)&&(dummy>=20))
- {
- for (j=0;j<3;j++)
- {
- dummy=percentile()/10;
- value=(int)(50+((double)percentile())/2.0);
- if (j==0)
- fprintf(ifp,"%d gp %s\t",value,semiprecious[dummy-1]);
- else
- fprintf(ifp," %d gp %s\t", value,semiprecious[dummy-1]);
- }
- fprintf(ifp,"\n");
- }
- if ((dummy<60)&&(dummy>=40))
- {
- for (j=0;j<3;j++)
- {
- dummy=percentile()/10;
- value=(int)(100+percentile());
- if (j==0)
- fprintf(ifp,"%d gp %s\t",value,fancy[dummy-1]);
- else
- fprintf(ifp," %d gp %s\t", value,fancy[dummy-1]);
- }
- fprintf(ifp,"\n");
- }
- if ((dummy<80)&&(dummy>=60))
- {
- for (j=0;j<3;j++)
- {
- dummy=percentile()/10;
- value=(int)(500+percentile()*5);
- if (j==0)
- fprintf(ifp,"%d gp %s\t",value,precious[dummy-1]);
- else
- fprintf(ifp," %d gp %s\t", value,precious[dummy-1]);
- }
- fprintf(ifp,"\n");
- }
- if ((dummy<95)&&(dummy>=80))
- {
- for (j=0;j<3;j++)
- {
- dummy=percentile()/10;
- value=(int)(1000+percentile()*10);
- if (j==0)
- fprintf(ifp,"%d gp %s\t",value,gems[dummy-1]);
- else
- fprintf(ifp," %d gp %s\t", value,gems[dummy-1]);
- }
- fprintf(ifp,"\n");
- }
- if ((dummy<100)&&(dummy>=95))
- {
- for (j=0;j<3;j++)
- {
- dummy=percentile()/10;
- value=(int)(5000+percentile()*50);
- if(j==0)
- fprintf(ifp,"%d gp %s\t",value,jewels[dummy-1]);
- else
- fprintf(ifp," %d gp %s\t", value,jewels[dummy-1]);
- }
- fprintf(ifp,"\n");
- }
- }
- fclose(ifp);
- }
-